This invention relates to distributed storage. More specifically, it relates to configurable and persistent storage on a computer system using a database.
Computer systems are composed of many different components including hardware and software resources. Massively parallel computer systems are an example of these computer systems and are also composed of nodes, or connection points. These nodes may serve as input or output (I/O) points, or points that perform a computational function and forward on data (also known as compute nodes). Because of the space and power consumed by disk devices, the nodes often have no local data storage. Additionally, any data access that does take place has a decreased reliability due to the large number of nodes.
Typically, it is desired to have data available from one boot to another for a given node or between nodes. For example, data can be sent to a remote file system for storage, but some explicit means of organizing the data from each node should be implemented by the fileserver and the input/output nodes. It is up to the nodes and the fileserver to adhere to whatever file or directory arrangement one implements. This arrangement is typically hard-wired into code running on multiple machines. However, hard-wired code is prone to errors if either end of such a solution is out of sync with the other. Such a solution might also be prone to concurrent access issues.